﻿using OddUserManager.Data.IRepositories;
using OddUserManager.Model;
using OddUserManager.Service.IServices;
using System;
using System.Collections.Generic;
using System.Text;
using System.Linq;
namespace OddUserManager.Service.Services
{
    public class OddUserService : IOddUserService
    {

        private readonly IOddUserRepository _repository;

        public OddUserService(IOddUserRepository repository) {
            _repository = repository;
        }


        public List<OddUser> GetAllUserList()
        {
            return _repository.GetAllList().ToList();
        }


        public void DeleteBatch(List<int> ids)
        {
            if (ids == null || ids.Count < 1) return;

            foreach (var i in ids)
            {
                _repository.Delete(i);
            }
        }

        public OddUser Get(int id)
        {
            return _repository.Get(id);
        }

        public List<OddUser> GetAllOddUsers()
        {
            return _repository.GetAllOddUsers();
        }

        public List<OddUser> GetOddUsersByParam(OddUser param)
        {
            return _repository.GetOddUserByParam(param);
        }

        public List<OddUser> GetOddUsersBySiteId(int siteId)
        {
            return _repository.GetOddUsersBySiteId(siteId);
        }

        public bool IsExists(OddUser param)
        {
            List<OddUser> list = _repository.GetOddUserByParam(param);
            if (list == null || list.Count < 1) return false;
            return true;
        }

        public PageViewCollection<OddUser> SearchOddUserPages(OddUser param, int pageIndex, int pageSize, string sortColumn, string sortDirection)
        {
            return _repository.SearchOddUserPages(param, pageIndex, pageSize, sortColumn, sortDirection);
        }

        public bool UpdateOrInsert(OddUser entity)
        {
            return _repository.InsertOrUpdate(entity);
        }

        public void UpdateSiteSort()
        {
            _repository.UpdateSiteSort();
        }

        public List<OddUser> GetAllUsersWithOdds(int num)
        {
            return _repository.GetAllUsersWithOdds(num);
        }

        public OddUser GetUserById(int id)
        {
            return _repository.Get(id);
        }

        public bool InsertOrUpdateUser(OddUser dto)
        {
            return _repository.InsertOrUpdate(dto);
        }
    }
}
